package com.taotao.product.service;

import com.taotao.product.domain.PmsSkuInfo;
import com.taotao.product.domain.SkuInventoryQuantity;
import com.taotao.product.vo.SaleAttrVo;

import java.util.List;

/**
 * sku信息Service接口
 *
 * @author ccy
 * @date 2024-01-16
 */
public interface IPmsSkuInfoService
{
    /**
     * 查询sku信息
     *
     * @param skuId sku信息主键
     * @return sku信息
     */
    public PmsSkuInfo selectPmsSkuInfoBySkuId(Long skuId);

    /**
     * 查询sku信息列表
     *
     * @param pmsSkuInfo sku信息
     * @return sku信息集合
     */
    public List<PmsSkuInfo> selectPmsSkuInfoList(PmsSkuInfo pmsSkuInfo);

    /**
     * 新增sku信息
     *
     * @param pmsSkuInfo sku信息
     * @return 结果
     */
    public int insertPmsSkuInfo(PmsSkuInfo pmsSkuInfo);

    /**
     * 修改sku信息
     *
     * @param pmsSkuInfo sku信息
     * @return 结果
     */
    public int updatePmsSkuInfo(PmsSkuInfo pmsSkuInfo);

    /**
     * 批量删除sku信息
     *
     * @param skuIds 需要删除的sku信息主键集合
     * @return 结果
     */
    public int deletePmsSkuInfoBySkuIds(Long[] skuIds);

    /**
     * 删除sku信息信息
     *
     * @param skuId sku信息主键
     * @return 结果
     */
    public int deletePmsSkuInfoBySkuId(Long skuId);

    /**
     * @Author ZhangYuQi
     * @Description 根据skuId获取销售属性列表
     * @Date 下午4:31 2024/12/24
     * @Param [skuId]
     * @return
     */
    List<SaleAttrVo> getSaleAttrsBySkuId(Long skuId);



    /**
    * @Author ZhangYuQi
    * @Description 根据skuId获取对应的商户id
    * @Date 下午10:09 2024/12/27
    * @Param [skuId]
    * @return
    */
    Long selectMerchantIdsBySkuIds(Long skuId);

    /**
    * @Author ZhangYuQi
    * @Description 获取所有上架状态的sku库存信息
    * @Date 上午10:26 2025/2/6
    * @Param []
    * @return
    */
    List<PmsSkuInfo> selectSkuInventoryQuantity();

    /**
    * @Author ZhangYuQi
    * @Description 批量同步库存信息
    * @Date 上午12:54 2025/2/10
    * @Param [skuInventoryQuantity]
    * @return
    */
    void decrInventory(List<SkuInventoryQuantity> skuInventoryQuantities);
}
